//
//  UIImage+MovieImage.m
//  WP_Movie
//
//  Created by GZCP1897 on 17/1/20.
//  Copyright © 2017年 GZCP1897. All rights reserved.
//

#import "UIImage+MovieImage.h"
#import <AVFoundation/AVFoundation.h>

@implementation UIImage (MovieImage)

+ (UIImage *)movieImageWith:(NSURL *)url time:(CGFloat)time{
    //创建URL
    
    //根据url创建AVURLAsset
    AVURLAsset *urlAsset=[AVURLAsset assetWithURL:url];
    //根据AVURLAsset创建AVAssetImageGenerator
    AVAssetImageGenerator *imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlAsset];
    /*截图
     * requestTime:缩略图创建时间
     * actualTime:缩略图实际生成的时间
     */
    NSError *error=nil;
    CMTime actualTime;
    CMTime Movetime = CMTimeMakeWithSeconds(time, 10);//CMTime是表示电影时间信息的结构体，第一个参数表示是视频第几秒，第二个参数表示每秒帧数.(如果要活的某一秒的第几帧可以使用CMTimeMake方法)
    
    CGImageRef cgImage= [imageGenerator copyCGImageAtTime:Movetime actualTime:&actualTime error:&error];
    if(error){
        NSDictionary *dict = @{@"error" : error};
        NSException *exception = [[NSException alloc] initWithName:@"截取视频缩略图时发生错误" reason:error.localizedDescription userInfo:dict];
        @throw exception;
    }
    CMTimeShow(actualTime);
    UIImage *image=[UIImage imageWithCGImage:cgImage];//转化为UIImage
    CGImageRelease(cgImage);
    return image;
}
@end
